# 类方法装饰器
"""
装饰了classmethod的，类可以直接调用类方法
"""
"""
class B:
    @classmethod
    def eat(cls,n): # cls == self
        print(f"吃{n}")
B.eat("汉堡") # 无需初始化对象，直接调用类方法

class A:
    def eat(self,n): # self == cls
        print(f"吃{n}")
a1 = A()
A.eat(a1,"吃东西") # 需要有对象，调用类方法
"""
# 静态方法装饰器
"""
装饰了静态方法的装饰器，就是一个普通的方法
"""
class C:
    @staticmethod
    def f(n):
        print(f"我是{n}")
"""
C.f("汉堡包") # 通过类直接调用f函数
c1 = C()
c1.f("汉堡包") # 通过对象直接调用f函数
"""
# 定义一个学生类，生成一堆学生对象，要有类方法，打印学生自己的信息
class Student:
    def __init__(self,name,age,sex):
        self.name = name
        self.age = age
        self.sex = sex
    def get_student_info(self):
        return f"学生的姓名是：{self.name},学生的年龄是：{self.age},学生的性别是：{self.sex}"
"""
s1 = Student("王长帅",19,"男")
s2 = Student("不是很帅",19,"男")
s3 = Student("王帅",19,"男")
s4 = Student("长帅",19,"男")
print(s1.get_student_info())
print(s2.get_student_info())
print(s3.get_student_info())
print(s4.get_student_info())
"""
# 定义一个计算机类，计算+-*/
class math:
    def __init__(self,a:int,b:int):
        self.a = a
        self.b = b
    def add(self):
        return self.a+self.b


















